package com.hxzy.shop.dto.marketingCalendar;

import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author ht
 * @Date 2021/7/7 13:43
 * @Version 1.0
 */
@Data
public class CouponSaveReq implements Serializable {

    /**
     * 优惠券类型 1满减券  2 包邮卷
     */
    @NotNull(message = "优惠券类型不能为空")
    @ApiModelProperty(value = "优惠券类型 1满减券  2 包邮券")
    private Integer couponType;

    /**
     * 优惠券名称
     */
    @NotBlank(message = "优惠券名称不能为空")
    @ApiModelProperty(value = "优惠券名称")
    private String couponName;

    /**
     * 库存
     */
    @NotNull(message = "发放数量不能为空")
    @ApiModelProperty(value = "库存")
    private Integer stock;

    /**
     * 开始有效期
     */

    @ApiModelProperty(value = "开始有效期")
    private Date startTime;

    /**
     * 结束有效期
     */

    @ApiModelProperty(value = "结束有效期")
    private Date endTime;


    /**
     * 每人领取状态 1 不限制 2 限制
     */
    @NotNull(message = "限领状态不能为空")
    @ApiModelProperty(value = "每人领取状态 1 不限制 2 限制")
    private Integer receivingStatusEachPerson;

    /**
     * 每人限领张数
     */

    @ApiModelProperty(value = "每人限领张数")
    private Integer limitedNumberTickets;

    /**
     * 公开性  true公开 false 不公开
     */
    @NotNull(message = "公开性不能为空")
    @ApiModelProperty(value = "公开性  true公开 false 不公开")
    private Boolean publicity;

    /**
     * 可使用商品状态 true全部商品 false部分商品
     */

    @ApiModelProperty(value = "可使用商品状态 true全部商品 false部分商品")
    private Boolean availableCommodityStatus;


    /**
     * 限制金额
     */
    //@NotNull(message = "门槛金额不能为空")
    @ApiModelProperty(value = "门槛金额")
    private BigDecimal limitedAmount;

    /**
     * 优惠金额
     */
    @ApiModelProperty(value = "优惠金额")
    private BigDecimal preferentialAmount;

    /**
     * 是否分享劵  true 是 false 不是
     */
    @NotNull(message = "是否分享券不能为空")
    @ApiModelProperty(value = "是否分享劵  true 是 false 不是")
    private Boolean shareCoupon;


    /**
     * 领取说明
     */
    @NotBlank(message = "领取说明不能为空")
    @ApiModelProperty(value = "领取说明")
    private String receivingInstructions;

    /**
     * 优惠说明
     */
    @NotBlank(message = "优惠说明不能为空")
    @ApiModelProperty(value = "优惠说明")
    private String offerDescription;

    /**
     * 使用须知
     */
    @NotBlank(message = "使用须知不能为空")
    @ApiModelProperty(value = "使用须知")
    private String instructionsForUse;


    @ApiModelProperty(value = "药品id集合")
    private List<Long> drugIds;

    /**
     * 是否开启会员权益0未开启，1已开启
     */
    @ApiModelProperty(value = "是否开启会员权益0未开启，1已开启")
    private Integer isRights;


    @ApiModelProperty(value = "领取人群 1全部人群 2新用户")
    private Integer recipients;

    @ApiModelProperty(value = "是否积分兑换卷 true 是 false 不是")
    private Boolean pointCoupon;

    /********营销活动参数********/
    /**
     * 营销活动ID
     */
    @TableId
    private Long marketingActivityId;
    /**
     * 日历id
     */
    @ApiModelProperty("日历id")
    private Long calendarId;
    @ApiModelProperty("日历子id")
    private Long sonCalendarId;
    /**
     * 活动主题
     */
    @ApiModelProperty("活动主题")
    private String activityTheme;
    /**
     * 活动类型（1限时折扣 2秒杀 3组合套餐 4满减 5第X件X折 6满赠 7优惠券）
     */
    @ApiModelProperty("活动类型（1限时折扣 2秒杀 3组合套餐 4满减 5第X件X折 6满赠 7优惠券）")
    private Integer type;

    /**
     * 推送版本（1标准版 2专业版 3高级版 4旗舰版）
     */
    @ApiModelProperty("推送版本（1标准版 2专业版 3高级版 4旗舰版）")
    private String versions;
    @ApiModelProperty("推送版本（1标准版 2专业版 3高级版 4旗舰版）")
    private List<String> versionsList;
    /**
     * 状态
     */
    @ApiModelProperty("状态")
    private Boolean state;
    /**
     * 活动ID
     */
    @ApiModelProperty("活动ID")
    private Long activityId;
    /**
     * 介绍
     */
    @ApiModelProperty("介绍")
    private String introduce;

    @ApiModelProperty("推文文本")
    private String tweetsContent;
}
